/*
 * app_print.c
 *
 *  Created on: Oct 15, 2013
 *      Author: Omar Sevilla
 */
#include "stdtypedef.h"
#include "drv_uart.h"
#include "app_print.h"
#include "app_convert.h"
#include "app_indicator.h"
#include "drv_pwm.h"
#include "drv_adc8.h"

extern T_UBYTE rub_MenuCounter,rub_SecuencialCounter;

void tprint(T_UBYTE lub_DataToPrint[]){
	T_UBYTE lub_CharCounter = 0;
	lub_CharCounter = 0;
	while(lub_DataToPrint[lub_CharCounter] != 0){
		uart0_putchar(lub_DataToPrint[lub_CharCounter]);
		lub_CharCounter++;
	}	
}

void PrintState(){
	volatile T_UWORD luw_print_aux;
	 uart0_putchar(0x0c);	//Borra la pantalla
	 switch (rub_MenuCounter){
	 	 case OFF:
	 		 uart0_putchar('O');
	 		 uart0_putchar('F');
	 		 uart0_putchar('F');
	 		 break;
	 	 case ANALOG_MODE:
	 		 uart0_putchar('A');
	 		 uart0_putchar('N');
	 		 uart0_putchar('A');
	 		 uart0_putchar('L');
	 		 uart0_putchar('O');
	 		 uart0_putchar('G');
	 		 
	 		 uart0_putchar(0x0A);	//Line Feed "\f"
	 		 uart0_putchar(0x0A);
	 		 uart0_putchar(0x0D);	//Carriage Return	"\r"
	 		 
	 		 //Printing RED STATE 
	 		 uart0_putchar('R');
	 		 uart0_putchar('E');
	 		 uart0_putchar('D');
	 		 uart0_putchar(' ');
	 		 uart0_putchar('V');
	 		 uart0_putchar('A');
	 		 uart0_putchar('L');
	 		 uart0_putchar('U');
	 		 uart0_putchar('E');
	 		 uart0_putchar(':');
	 		 uart0_putchar(' ');
	 		 uart0_putchar(' ');
	 		 uart0_putchar(' ');
	 		 
	 		 luw_print_aux = (T_UWORD)((float)(get_adc(CH_RED))*12.95);
	 		 bin2bcd(luw_print_aux);
	 		 bcd2ascii();
	 		 
	 		 //uart_putchar(rub_BCDDmil);
	 		 uart0_putchar(rub_BCDUmil);
	 		 uart0_putchar('.');
	 		 uart0_putchar(rub_BCDCen);
	 		 uart0_putchar(rub_BCDDec);
	 		 //uart_putchar(rub_BCDUni);
	 		 uart0_putchar(' ');
	 		 uart0_putchar('V');
	 		 
	 		 uart0_putchar(0x0A);
	 		 uart0_putchar(0x0D);	//Carriage Return	"\r"
	 		 
	 		 //Printing GREEN STATE 
	 		 uart0_putchar('G');
	 		 uart0_putchar('R');
	 		 uart0_putchar('E');
	 		 uart0_putchar('E');
	 		 uart0_putchar('N');
	 		 uart0_putchar(' ');
	 		 uart0_putchar('V');
	 		 uart0_putchar('A');
	 		 uart0_putchar('L');
	 		 uart0_putchar('U');
	 		 uart0_putchar('E');
	 		 uart0_putchar(':');
	 		 uart0_putchar(' ');
	 		 
	 		 luw_print_aux = (T_UWORD)((float)(get_adc(CH_GREEN))*12.95);
	 		 bin2bcd(luw_print_aux);
	 		 bcd2ascii();
	 		 
	 		 //uart_putchar(rub_BCDDmil);
	 		 uart0_putchar(rub_BCDUmil);
	 		 uart0_putchar('.');
	 		 uart0_putchar(rub_BCDCen);
	 		 uart0_putchar(rub_BCDDec);
	 		 //uart_putchar(rub_BCDUni);
	 		 uart0_putchar(' ');
	 		 uart0_putchar('V');
	 		 
	 		 uart0_putchar(0x0A);
	 		 uart0_putchar(0x0D);	//Carriage Return	"\r"

	 		 //Printing BLUE STATE 
	 		 uart0_putchar('B');
	 		 uart0_putchar('L');
	 		 uart0_putchar('U');
	 		 uart0_putchar('E');
	 		 uart0_putchar(' ');
	 		 uart0_putchar('V');
	 		 uart0_putchar('A');
	 		 uart0_putchar('L');
	 		 uart0_putchar('U');
	 		 uart0_putchar('E');
	 		 uart0_putchar(':');
	 		 uart0_putchar(' ');
	 		 uart0_putchar(' ');
	 		 
	 		 luw_print_aux = (T_UWORD)((float)(get_adc(CH_BLUE))*12.95);
	 		 bin2bcd(luw_print_aux);
	 		 bcd2ascii();
	 		 
	 		 //uart_putchar(rub_BCDDmil);
	 		 uart0_putchar(rub_BCDUmil);
	 		 uart0_putchar('.');
	 		 uart0_putchar(rub_BCDCen);
	 		 uart0_putchar(rub_BCDDec);
	 		 //uart_putchar(rub_BCDUni);
	 		 uart0_putchar(' ');
	 		 uart0_putchar('V');
	 		 break;
	 	 case SECUENCIAL_MODE:
	 		 uart0_putchar('S');
	 		 uart0_putchar('E');
	 		 uart0_putchar('C');
	 		 uart0_putchar('U');
	 		 uart0_putchar('E');
	 		 uart0_putchar('N');
	 		 uart0_putchar('C');
	 		 uart0_putchar('I');
	 		 uart0_putchar('A');
	 		 uart0_putchar('L');
	 		 
	 		 uart0_putchar(0x0A);
	 		 uart0_putchar(0x0D);	//Carriage Return	"\r"
	 		 
	 		 ColourPrint(rub_SecuencialCounter);
	 		 break;
	 	 default:
	 		 break;	 		 
	 }
}

void ColourPrint(T_UBYTE lub_ColourValue){
	switch(lub_ColourValue){
	case 0:
		 uart0_putchar('R');
		 uart0_putchar('E');
		 uart0_putchar('D');
		 break;
	case 1:
		 uart0_putchar('G');
		 uart0_putchar('R');
		 uart0_putchar('E');
 		 uart0_putchar('E');
 		 uart0_putchar('N');
 		 break;
	case 2:
		 uart0_putchar('B');
		 uart0_putchar('L');
		 uart0_putchar('U');
 		 uart0_putchar('E');
 		 break;
	case 3:
		 uart0_putchar('C');
		 uart0_putchar('Y');
		 uart0_putchar('A');
 		 uart0_putchar('N');
 		 break;
	case 4:
		 uart0_putchar('Y');
		 uart0_putchar('E');
		 uart0_putchar('L');
 		 uart0_putchar('L');
 		 uart0_putchar('O');
 		 uart0_putchar('W');
 		 break;
	case 5:
		 uart0_putchar('P');
		 uart0_putchar('U');
		 uart0_putchar('R');
 		 uart0_putchar('P');
 		 uart0_putchar('L');
 		 uart0_putchar('E');
 		 break;
	case 6:
		 uart0_putchar('W');
		 uart0_putchar('H');
		 uart0_putchar('I');
 		 uart0_putchar('T');
 		 uart0_putchar('E');
 		 break;
	default:
		 uart0_putchar('U');
		 uart0_putchar('N');
		 uart0_putchar('K');
 		 uart0_putchar('N');
 		 uart0_putchar('O');
 		 uart0_putchar('W');
 		 uart0_putchar('N');
 		 break;
	}
}
